package com.flute.haflute.client;

import com.flute.haflute.jobbox.base.CloudJobConf;

public interface JobTracer {

	/**
	 * 如果提交任务成功，返回true。不成功的原因是集群资源暂时不够
	 * @return 任务是否成功
	 */
	public boolean awaitSubmitSuccessUninterruptly();
	
	/**
	 * @return the JOB是否完成
	 */
	public boolean isJobFinished();
	
	/**
	 * 默认通过该接口提交一项工作请求
	 * @param jobConf
	 *            CloudJobConf：任务执行的配置文件
	 * @throws Exception
	 */
	public void submitJob(CloudJobConf jobConf) throws Exception;
	
	/**
	 * 通过该接口指定集群DM来提交一项工作请求
	 * 
	 * @param jobConf
	 *            任务的配置文件，类：CloudJobConf
	 * @param clusterDm
	 *            指定集群主节点IP或者名字
	 * @param port
	 *            主节点的端口
	 */
	public void submitJob(CloudJobConf jobConf, String clusterDm, int port) throws Exception;
}
